From: Erik Duxstad Date: Mon, 5 Nov 2018 23:13:26 +0000 (-0600) Subject: windowManager: make TouchpadWorkspaceSwitchAction respect natural-scroll X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~897^2~1^2~46 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=118cab176623ced5d169d8363d4f4c6433d8c21f;p=gnome-shell.git windowManager: make TouchpadWorkspaceSwitchAction respect natural-scroll Instead of defaulting to a natural scroll behavior, have the workspace switch action use the natural-scroll setting in org.gnome.peripherals.touchpad to determine the correct direction of travel when swiping. 4 finger swipes will then match the behavior of the rest of the UI. Reference: https://gitlab.gnome.org/GNOME/gnome-shell/issues/516 --- diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 09270914e..fedee72d5 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -478,6 +478,7 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({ this._dx = 0; this._dy = 0; actor.connect('captured-event', this._handleEvent.bind(this)); + this._touchpadSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.peripherals.touchpad'}); }, _checkActivated() { @@ -515,7 +516,11 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({ // Scale deltas up a bit to make it feel snappier this._dx += dx * 2; - this._dy += dy * 2; + if(!(this._touchpadSettings.get_boolean('natural-scroll'))) + this._dy -= dy * 2; + else + this._dy += dy * 2; + this.emit('motion', this._dx, this._dy); } else { if ((event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END && ! this._checkActivated()) ||